// src/app.js

//导入path模块，用于处理文件与目录的路径
const path = require('path');
// 导⼊ express 模块，⽤于创建和配置应⽤程序
const express = require('express');
// 导⼊ cors 模块，⽤于解决跨域问题
const cors = require('cors');
// 导入morgan模块，用于记录日志
const morgan = require('morgan');

// 导⼊ planetsRouter 路由器实例
const planetsRouter = require('./routes/planets/planets.router');
const launchesRouter = require('./routes/launches/launches.router');

// 创建⼀个 express 应⽤程序实例
const app = express();

// 使⽤ cors 中间件解决跨域问题
app.use(cors({
    origin: 'http://localhost:3000', // 允许来⾃前端开发服务器的请求
   }));

   // 使用 morgan中间件记录日志
   app.use(morgan('combined'));

   // 使⽤ express 内置的中间件解析 JSON 格式的请求体
   app.use(express.json());
   
   //使用 express static 中间件处理静态资源
   app.use(express.static(path.join(__dirname,'..','public')));

   // 使⽤ planetsRouter 路由器实例处理 /planets 路由
   app.use('/planets', planetsRouter);
   

   // 使⽤ launchesRouter 路由器实例处理 /launches 路由
   
   app.use('/launches', launchesRouter);


   // 处理根路由的 GET 请求，加载 public/index.html ⽂件

    app.get('/*', (req, res) => {
        res.sendFile(path.join(__dirname, '..', 'public', 'index.html'));
    });

    //导出应用程序实例，以便在其他文件中使用
   module.exports = app;